package com.ruoyi.service;

import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.domain.ColumnPermission;

/**
 * 栏目临时权限Service接口
 * 
 * @author ruoyi
 * @date 2025-09-03
 */
public interface IColumnPermissionService extends IService<ColumnPermission>
{
    /**
     * 查询栏目临时权限
     * 
     * @param id 栏目临时权限主键
     * @return 栏目临时权限
     */
    public ColumnPermission selectColumnPermissionById(Long id);

    /**
     * 查询栏目临时权限列表
     * 
     * @param columnPermission 栏目临时权限
     * @return 栏目临时权限集合
     */
    public List<ColumnPermission> selectColumnPermissionList(ColumnPermission columnPermission);

    /**
     * 新增栏目临时权限
     * 
     * @param columnPermission 栏目临时权限
     * @return 结果
     */
    public int insertColumnPermission(ColumnPermission columnPermission);

    /**
     * 修改栏目临时权限
     * 
     * @param columnPermission 栏目临时权限
     * @return 结果
     */
    public int updateColumnPermission(ColumnPermission columnPermission);

    /**
     * 批量删除栏目临时权限
     * 
     * @param ids 需要删除的栏目临时权限主键集合
     * @return 结果
     */
    public int deleteColumnPermissionByIds(Long[] ids);
    
    /**
     * 根据栏目ID和部门ID查询权限
     * @param columnId 栏目ID
     * @param deptId 部门ID
     * @return 栏目临时权限
     */
    public ColumnPermission selectColumnPermissionByColumnIdAndDeptId(Long columnId, Long deptId);
    
    /**
     * 根据部门ID查询权限列表
     * @param deptId 部门ID
     * @return 栏目临时权限集合
     */
    public List<ColumnPermission> selectColumnPermissionsByDeptId(Long deptId);
    
    /**
     * 根据栏目ID查询权限列表
     * @param columnId 栏目ID
     * @return 栏目临时权限集合
     */
    public List<ColumnPermission> selectColumnPermissionsByColumnId(Long columnId);
    
    /**
     * 根据栏目ID和部门ID删除权限
     * @param columnId 栏目ID
     * @param deptId 部门ID
     * @return 结果
     */
    public int deleteColumnPermissionByColumnIdAndDeptId(Long columnId, Long deptId);
    
    /**
     * 根据栏目ID删除权限
     * @param columnId 栏目ID
     * @return 结果
     */
    public int deleteColumnPermissionByColumnId(Long columnId);
    
    /**
     * 根据部门ID删除权限
     * @param deptId 部门ID
     * @return 结果
     */
    public int deleteColumnPermissionByDeptId(Long deptId);
}